
class Hitbox:
    def __init__(self, x, y, width=100, height=100):
        self.__x = x
        self.__y = y
        if width < 0:
            width = 0
        if height < 0:
            height = 0
        self.__width = width
        self.__height = height

    def __str__(self):
        return f"ширина = {self.__width}, высота {self.__height}"

    def get_x(self):
        return self.__x

    def set_x(self, x):
        self.__x = x

    def get_y(self):
        return self.__y

    def set_y(self, y):
        self.__y = y

    def get_width(self):
        return self.__width

    def set_width(self, width):
        if width < 0:
            width = 0
        self.__width = width

    def get_heignt(self):
        return self.__height

    def set_height(self, height):
        if height < 0:
            height = 0
        self.__height = height

    def scale(self):
        self.__width *= 2
        self.__height *= 2

    def move(self, dx=100, dy=100):
        self.__x += dx
        self.__y += dy

    def move_to(self, x=0, y=0):
        self.__x = x
        self.__y = y

    def get_left(self):
        return self.__x

    def get_right(self):
        return self.__x + self.__width

    def get_niz(self):
        return self.__y + self.__height

    def get_top(self):
        return self.__y


    def intersects(self, hb2):
        if self.get_top() > hb2.get_niz():
            return False
        elif self.get_right() < hb2.get_left():
            return False
        elif self.get_niz() < hb2.get_top():
            return False
        elif self.get_left() > hb2.get_right():
            return False
        else:
            return True
